#include <sys/types.h>
#include <sys/msg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#define MSG_FILE "/tmp/passwd"

typedef struct msg_form{
    long mtype;    // 消息类型
    char mtext[256]; // 消息内容
    // char additor[20]; // 添加者
} MSG;

int main() {
    int msqid;
    key_t key;
    MSG msg;

    if ((key = ftok(MSG_FILE, 'z')) < 0) {
        perror("ftok error");
        exit(1);
    }

    if ((msqid = msgget(key, IPC_CREAT | 0777)) == -1) {
        perror("msgget error");
        exit(1);
    }

    msg.mtype = 888;
    // strcpy(msg.additor, "ishui");
    sprintf(msg.mtext, "hello, I'm sender %d", getpid());
    msgsnd(msqid, &msg, sizeof(msg.mtext), 0);

    return 0;
}
